/*
 * TimeRectifier.h
 *
 *  Created on: 2016年10月10日
 *      Author: zhengboyuan
 */

#ifndef TIMERECTIFIER_H_
#define TIMERECTIFIER_H_

#include "BasicType.h"

namespace util
{

/**
 * 时间戳整流器
 * 确保时间戳持续增长
 */
class TimeRectifier
{
public:
	TimeRectifier();
	virtual ~TimeRectifier();

	int64_t	rectify(int64_t ts);

	void setDeviation(int dev);

	int64_t getStart() const;

	int64_t getAvgDuration() const;

	void reset();

protected:
	int		m_deviation;
	int64_t	m_count;
	int64_t	m_start;
	int64_t	m_last;
	int64_t m_offset;
	int64_t	m_avgDuration;

};


} /* namespace util */

#endif /* TIMERECTIFIER_H_ */
